#!/bin/bash
###############################################################################
# @用例ID: 20230527-212705-602770444
# @用例名称: e2fsprogs-test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件: 查看e2fsprofs是否安装
    rpm -q e2fsprogs
    assert_true [ $? -eq 0 ]
    return 0
}

do_test() {
    msg "this is do_test"

    # @测试步骤:1: 检查磁盘装置中损坏的区块
    # @预期结果:1: 成功检查
    badblocks -s -v /dev/sda2
    assert_true [ $? -eq 0 ]
    

    # @测试步骤:2: 对系统的块设备信息进行查询
    # @预期结果:2: 成功查询
    assert_true blkid

    # @测试步骤:3: 用来检测ext系列文件系统的碎片情况
    # @预期结果:3: 成功检测
    e2freefrag /dev/sda1
    assert_true [ $? -eq 0 ]

    # @测试步骤:4: 运行在线文件碎片整理工具
    # @预期结果:4: 成长整理
    e4defrag /dev/sda1
    assert_true [ $? -eq 0 ]
    


    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################